Python中的Numpy库之random中random、rand、randn、randint的用法

您所在的位置:网站首页 random randn函数 Python中的Numpy库之random中random、rand、randn、randint的用法

Python中的Numpy库之random中random、rand、randn、randint的用法

2024-01-18 00:27| 来源: 网络整理| 查看: 265

在Numpy中一切皆矩阵 1、random

首先来看一下它的函数定义,主要看他的接受的参数,(虽然在函数体里什么都没有,但是照样能用它产生数据,这里由于水平原因,不再继续深入探究)

def random(size=None): # real signature unknown; restored from __doc__ """ random(size=None) 返回值,这里没有遵循什么分布规律,只是简单的生成0-1的浮点数,且左闭右开 Return random floats in the half-open interval [0.0, 1.0). Alias for `random_sample` to ease forward-porting to the new random API. """ pass

我们分两种情况来探究,这个size参数。

情况一

直接给参数传一个整数,即size=3

print(np.random.random(3))

返回值:是一个一维数组,注意他不是列表

[0.20367297 0.55265547 0.72267248]

情况二

给参数传一个元组,即size=(3, 3)

print(np.random.random((3, 3)))

返回值:是一个二维数组

[[8.88325725e-01 7.05841883e-01 1.38825064e-01] [4.89045258e-01 7.25233743e-01 8.95902437e-02] [3.62093551e-01 5.59233974e-01 1.84422779e-04]]

说明:①情况一中的整数也可以写成元组,只不过我们为了省事,不这么写;②元组也可以换成列表类型 2、randint

还是主要看前三个参数,其中size和上面的一样,我们分别来探究三个参数对返回值的影响。最后一个是返回值类型,在理不做讨论。 这个家伙也是,函数体里啥都没有 在这里插入图片描述

情况一:

只对第一个参数赋值,后面两个有默认值,我们这里先不管他们。

print(np.random.randint(10))

返回值:仅仅得到一个整数,且得到的整数总是小于lower

9

情况二:

对前两个参数赋值,注意high>lower,即第二个参数要大于第一个参数的值

print(np.random.randint(10, 23))

返回值:仅仅得到一个整数,得到的整数总是在lower和high之间

17

情况三:

三个参数都赋值

print(np.random.randint(10, 22, (3, 2)))

[[18 11] [18 16] [10 17]]

说明:①lower和high均可以为浮点数;②其实只对lower赋值,相当于lower=0,high=所赋值的lower;③可以只对lower和size赋值 2、randn和rand

这两个放一起说,因为他们的参数一样,只不过生成的随机数的分布不同。

还是老规矩,先看函数定义:

rand

在这里插入图片描述

randn

在这里插入图片描述 看到了吧,他们是何其相似,连注解都一样。

下面来说说,dn是什么,其实,最关键的还是对符号的理解,它相当于把一个元组数据拆分成一个个具体的数值。 来看两个例子,了解一下他的参数返回的值,就明白了。

情况一: print(np.random.rand(2))

返回结果:

[0.57531079 0.67555903]

情况二: print(np.random.rand(2, 3))

返回结果:

[[0.61497674 0.199005 0.4309077 ] [0.02964575 0.70530525 0.26741078]]

再来说说他们的分布,

rand是uniform分布。详细解释,看百度百科

在这里插入图片描述 randn是正态分布,这个就不放图了,大家都懂。

怎么区分他们的分布,带n的是正态分布。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3